' title SCREEN 1,320,200,4,1: WINDOW 2, "Spelling", (0,0)-(310,186), 0, 1 WINDOW OUTPUT 2: CLS: PRINT " " : DIM SHARED PCan!(31,3) CALL SetRGB (0,0,0,0): CALL SetRGB(1,15,15,15):CALL SetRGB(2,15,0,0) CALL SetRGB (3,15,10,0):CALL SetRGB(4,0,0,0): CALL SetRGB(15,0,0,0) LINE(68,6)-(240,166),2,bf LINE(14,14)-(153,40),3,bf LINE(166,136)-(288,158),3,bf COLOR 1,2 LOCATE 9,11: PRINT"Created exclusively"; LOCATE 11,19:PRINT "for"; LOCATE 13,12:PRINT "Slipped Disk Inc." COLOR 1,3 LOCATE 4,4: PRINT"S P E L L I N G" LOCATE 19,23: PRINT"Robert Sawdey" CALL SetRGB( 4,15,15,2) FOR i=1 TO 5000:NEXT FOR j%=0 TO 15 FOR i%=0 TO 3 CALL AskRGB( i%,r%,g%,b%) IF r%>0 THEN r%=r%-1 IF g%>0 THEN g%=g%-1 IF b%>0 THEN b%=b%-1 CALL SetRGB( i%, r%, g%, b%) NEXT i%: NEXT j% ' ' setup screen & stripes ' CLS FOR i%=2 TO 15 COLOR i% LINE (0,i%*12-15)-(319,i%*12-3),,bf NEXT i% COLOR 0,1 :' foreground pen , background pen ' LINE(45,82)-(187,116),,bf CALL SetRGB( 0,10,0,12):' screen color CALL SetRGB( 1,15,15,10):' text color CALL SetRGB( 2,15,10,15):' border color CALL SetRGB( 3,15,0,15) CALL SetRGB( 4,15,0,10) CALL SetRGB( 5,15,0,5) CALL SetRGB( 6,15,0,0) CALL SetRGB( 7,10,0,5) CALL SetRGB( 8,5,0,10) CALL SetRGB( 9,0,0,15) CALL SetRGB( 10,0,5,10) CALL SetRGB( 11,0,10,5) CALL SetRGB( 12,5,15,5) CALL SetRGB( 13,10,15,5) CALL SetRGB( 14,15,15,5) CALL SetRGB( 15,15,15,10) ' ' setup voice parameters ' a%(0)=220 :' pitch(65-320) a%(1)=0 :' inflect(0-1) a%(2)=120 :' rate(40-400) a%(3)=1 :' 0=male 1=fem a%(4)=27500 :'tuning 5k-28k a%(5)=64 :' volume(0-64) a%(6)=10 :'channel(0-11) a%(7)=1 :' mode(0-1) a%(8)=0 :' control(0-2) ' ' student name & word list ' b$(0)="student" b$(1)="hi" b$(2)="boy" b$(3)="bus" b$(4)="run" b$(5)="sun" b$(6)="tag" b$(7)="mom" b$(8)="bug" b$(9)="daddy" b$(10)="girl" ' ' intro ' PRINT" Spelling Quiz: Type to quit" a$="Please type your name.":GOSUB talk LOCATE 13,8: PRINT "";:INPUT;b$(0) IF b$(0)="" THEN GOTO quit a$="Hello "+b$(0)+". Lets spell.":l%=0:GOSUB talk ' ' main test loop ' right: l%=l%+1 wrong: IF l%>10 THEN GOTO congrats a$="Please type. "+b$(l%)+"." GOSUB talk LOCATE 13,8: PRINT " " LOCATE 13,8: PRINT "";:INPUT; a$ IF a$="" THEN GOTO quit IF a$=b$(l%) THEN a$="you got it right.":GOSUB talk:GOSUB cycle:GOTO right IF a$<>b$(l%) THEN a$="try again.":GOSUB talk:GOTO wrong ' ' speakit ' talk: b$=TRANSLATE$(a$) SAY b$, a% RETURN ' ' congrats ' congrats: GOSUB cycle:a$="now you are done.":GOSUB talk a$="you have spelled all ten words right.":GOSUB talk:GOTO quit ' ' roll colors ' cycle: FOR j%=15 TO 0 STEP -1 FOR i%= 2 TO 15 PALETTE ((i%+j%) MOD 13)+2, PCan!( i%,0), PCan!( i%,1), PCan!( i%,2) NEXT i% NEXT j% RETURN ' ' Clean up & go home ' ' reset rgb quit: CALL SetRGB( 0,6,9,15): CALL SetRGB( 1,0,0,0) CALL SetRGB( 2,15,15,15): CALL SetRGB( 3,15,9,10) CALL SetRGB( 4,14,3,0): CALL SetRGB( 5 ,15,11,0) CALL SetRGB( 6,15,15,2): CALL SetRGB( 7,11,15,0) CALL SetRGB( 8,5,13,0): CALL SetRGB( 9,0,14,13) CALL SetRGB( 10,7,13,15): CALL SetRGB( 11,12,0,14) CALL SetRGB( 12,15,2,14): CALL SetRGB( 13,15,13,11) CALL SetRGB( 14,12,9,8) : CALL SetRGB( 15,11,11,11) CLS:PRINT " ":WINDOW CLOSE 2: SCREEN CLOSE 1 SUB AskRGB( n%, r%, g%, b%) STATIC r% = PCan!( n%, 0) * 15 g% = PCan!( n%, 1) * 15 b% = PCan!( n%, 2) * 15 END SUB SUB SetRGB( n%, r%, g%, b%) STATIC PCan!( n%, 0) = r% /15 PCan!( n%, 1) = g% /15 PCan!( n%, 2) = b% /15 PALETTE n%, PCan!( n%,0), PCan!( n%,1), PCan!( n%,2) END SUB